package com.otod.kb.main.service;



import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.otod.base.service.BaseService;
import com.otod.commons.entity.Page;
import com.otod.kb.main.mapper.KbContentMapper;
import com.otod.kb.main.mapper.KbMasterMapper;
import com.otod.kb.main.vo.KbContentVo;
import com.otod.kb.main.vo.KbMasterVo;




/**
 * 知识库管理
 * @author longjinwei
 */
@Service
public class KbService extends BaseService {
	
	@Autowired
	KbMasterMapper masterMapper;
	@Autowired
	KbContentMapper ContentMapper;
/******************************************************************************************/	
	/**
	 * 分页查询知识库信息列表
	 * @param page	分页信息
	 * @param param	参数
	 * @return	分页信息和结果数据
	 */
	public Page queryForList(Page page,Map<String,Object> param){
		List<KbMasterVo> dataList =  masterMapper.queryForList(page,param);
		page.setAaData(dataList);
		return page;
	}
	
	/**
	 * 通过uuid 查询知识库
	 * @param uuid
	 * @return
	 */
	public KbMasterVo getById(String uuid){
		return masterMapper.getById(uuid);
	}
	
	/**
	 * 删除知识库
	 */
	
	public void delMaster(String uuid) {
		//删除项目
		masterMapper.deleteById(uuid);
	
	}
	
	/**
	 * 添加知识库
	 */
	
	public void addMaster(KbMasterVo kbMasterVo) {
		kbMasterVo.setUuid(super.getUUID());
		masterMapper.insert(kbMasterVo);
	}
	
	
	/**
	 * 通过知识库类型和名字查询数据
	 * @param kbType
	 * @param kbName
	 * @return
	 */
	public KbMasterVo selectMaster(String kbType,String kbName){
		
		return masterMapper.selectMaster(kbType, kbName);
		
	}
	
	/**
	 * 更新知识库 或 修改知识库
	 */
	
	public void updateMaster(Map<String,Object> map) {
		masterMapper.update(map);
		
	}
	
	/************************************表Contert操作**************************************/
	/**
	 * 通过uuid 查询知识库内容
	 * @param uuid
	 * @return
	 */
	public KbContentVo getContentById(String uuid){
		
		KbContentVo contentVo = ContentMapper.getBykbId(uuid);
		
		return contentVo;
	}
	
	/**
	 * 添加知识库内容
	 * @param contentVo
	 */
	public void addContent(KbContentVo contentVo){
		//设置主键
		contentVo.setUuid(super.getUUID());
		ContentMapper.insert(contentVo);
		
	}
	/**
	 * 修改知识库内容
	 * @param contentVo
	 */
	public void updateContent(Map<String,Object> map){
		ContentMapper.update(map);
		
	}
	/**
	 * 修改知识库内容 状态
	 * @param uuid
	 */
	public void updateContentStatus(String kbId,String status){
		ContentMapper.updateContentStatus(kbId, status);
	}
}
